# -*- coding=utf-8 -*-

# python内置的命令行处理模块
# 处理类似 cocos new -p com.lm.game -l cpp lmgame 这样后面跟一长串参数的命令行
import optparse;

if __name__ == '__main__':
	# 这段话会在使用 -h或者参数错误时优先打印出来，以帮助使用者使用
	# 其中 %prog 当前脚本的名称
	parser = optparse.OptionParser("usage: %prog [options] {configfile}");

	# "-o" 命令行参数的简写方式
	# "--output" 长参数名
	# action = "store" 解析出的参数名放置到options词典中
	# type = "string" 解析后存储到词典中的数据的类型
	# dest = "output" 放置到词典中的key
	# 
	# eg: optparse_py27.py -o path
	# 下方解析出的内容是 {"output": "path"} []
	parser.add_option("-o", "--output", action = "store", type = "string", dest = "output", help = "H H ... Help!!");

	# type = "int"
	# 验证解析出的数据为int类型
	parser.add_option("-n", "--num", type = "int", dest = "num", help = "H H ... Help!!")

	# default = "./path"
	# 默认值
	parser.add_option("-i", "--input", dest = "input", default = "./path");

	# 无 dest = ""
	# 不指定key时，如果存在长参数名则使用长参数名作为key("--language")，否则则使用短参数名作为key("-l")
	parser.add_option("-l", "--language", default = "cpp");

	(options, args) = parser.parse_args();

	print options;
	print args;